In many computer networks, it is desirable to monitor the status of network agents. For example, a bank having a network of Automated Teller Machines (ATM's) needs to know the status of its ATM's. In the same way, other network operators having remote agents often need to manage their agents for similar reasons. Most of the existing methods for managing networks rely primarily on active polling or pinging of agents. According to these methods, a host machine or machines on the network periodically polls each agent on the network. When an agent receives a poll or ping, it prepares and sends a response message to the host. The host verifies the status of an agent based on whether it replies to the poll and on status data that may be included in the response message. If more information about the status of an agent is required, for example, if the response message indicates a problem, additional pings or polls may be sent to the agent.
Although active maintenance systems can be effective, they also have certain drawbacks. For example, active maintenance requires a great deal of bandwidth. For every poll or ping to an agent, two messages are carried on the network: the poll or ping and the response message. Bandwidth-related concerns can be particularly troublesome when all or a portion of the network path between a host and an agent is bandwidth limited, or rented on the basis of bandwidth. In addition to its bandwidth issues, active maintenance also is incapable of managing agents that the host does not know about. Each ping or poll made by the host must be directed to the address of an agent. If the host is unaware of any agents on the network, it most likely does not know those agents' addresses and cannot ping or learn anything about them.